﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Sistema_financiero
{
    public partial class frm_Calcular_Cuotas : Form
    {
        public Entidades.Calcular_cuotas Cuotas_seleccionada = new Sistema_financiero.Entidades.Calcular_cuotas();
        public bool Aceptar; 
        public frm_Calcular_Cuotas()
        {
            InitializeComponent();
            btn_Aceptar.Enabled = false;
        }

        private void frm_Calcular_Cuotas_Load(object sender, EventArgs e)
        {
           
        }

        private void mtbx_TEM_MouseEnter(object sender, EventArgs e)
        {

        }

        private void mtbx_TEM_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
        {

        }

        private void lbl_Importe_Click(object sender, EventArgs e)
        {

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            Control.Textbox_restricciones.Permitir_solo_numeros(e);
        }

        private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
        {
            Control.Textbox_restricciones.Permitir_solo_numeros(e);
        }

        private void mtbx_TEM_Leave(object sender, EventArgs e)
        {
            Control.Textbox_restricciones.Validar_mascara(mtbx_TEM, e);
        }

        private void mtbx_Sellado_Leave(object sender, EventArgs e)
        {
            Control.Textbox_restricciones.Validar_mascara(mtbx_Sellado, e);
        }

        private void mtbx_Sellado_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
        {

        }

        private void btn_Calcular_Click(object sender, EventArgs e)
        {
            if ((mtbx_TEM.Text != " ,") && (tbx_Importe.Text != "") && (tbx_Instituto_informe.Text != "") && (mtbx_Sellado.Text != " ,"))
            {

                dgv_Cuotas.DataSource = null;
                List<Entidades.Calcular_cuotas> Lista_cuotas = new List<Sistema_financiero.Entidades.Calcular_cuotas>();
                for (int i = 1; i <= num_Cuotas.Value; i++)
                {
                    Entidades.Calcular_cuotas Cuota = new Sistema_financiero.Entidades.Calcular_cuotas();
                    Cuota.Numero = i;
                    Cuota.Monto = Decimal.Round(Entidades.Calcular_cuotas.Calcular_importe_cuota(Convert.ToDecimal(mtbx_TEM.Text), i, Convert.ToInt32(tbx_Importe.Text), Convert.ToInt32(tbx_Instituto_informe.Text), Convert.ToDecimal(mtbx_Sellado.Text)));
                    Cuota.Total = Decimal.Round(Cuota.Monto * i);
                    Lista_cuotas.Add(Cuota);
                }
                dgv_Cuotas.DataSource = Lista_cuotas;
                dgv_Cuotas.Columns[0].HeaderText = "Cant. Cuotas";
                dgv_Cuotas.Columns[1].HeaderText = "Monto por cuota";
                dgv_Cuotas.Columns[2].HeaderText = "Total a pagar";
                dgv_Cuotas.Columns[3].Visible = false;
                dgv_Cuotas.Columns[4].Visible = false;
                dgv_Cuotas.Columns[5].Visible = false;
                dgv_Cuotas.Columns[6].Visible = false;

                dgv_Cuotas.AutoResizeColumns();
                btn_Aceptar.Enabled = true;
            }
            else
            {
                MessageBox.Show("Quedan campos obligatorios por completar. <Ver resaltados>", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Control.Textbox_restricciones.Campo_obligatorio(mtbx_TEM);
                Control.Textbox_restricciones.Campo_obligatorio(tbx_Importe);
                Control.Textbox_restricciones.Campo_obligatorio(tbx_Instituto_informe);
                Control.Textbox_restricciones.Campo_obligatorio(mtbx_Sellado);
                btn_Aceptar.Enabled = false;
                dgv_Cuotas.DataSource= null;

            }
        


        }

        private void btn_Aceptar_Click(object sender, EventArgs e)
        {
            Cuotas_seleccionada.Numero = Convert.ToInt32(dgv_Cuotas[0, dgv_Cuotas.CurrentRow.Index].Value);
            Cuotas_seleccionada.Monto = Convert.ToDecimal(dgv_Cuotas[1, dgv_Cuotas.CurrentRow.Index].Value);
            Cuotas_seleccionada.Total = Convert.ToDecimal(dgv_Cuotas[2, dgv_Cuotas.CurrentRow.Index].Value);
            Cuotas_seleccionada.Importe = Convert.ToInt32(tbx_Importe.Text);
            Cuotas_seleccionada.Instituto_informe = Convert.ToInt32(tbx_Instituto_informe.Text);
            Cuotas_seleccionada.Sellado = Convert.ToDecimal(mtbx_Sellado.Text);
            Cuotas_seleccionada.Tem = Convert.ToDecimal(mtbx_TEM.Text);
            Aceptar = true;
            this.Close();
        }

        private void btn_Cancelar_Click(object sender, EventArgs e)
        {
            Cuotas_seleccionada = null;
        }

        private void frm_Calcular_Cuotas_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (Aceptar == false)
            {
                Cuotas_seleccionada = null;
            }
        }

        private void dgv_Cuotas_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dgv_Cuotas.RowCount > 0)
            {
                Cuotas_seleccionada.Numero = Convert.ToInt32(dgv_Cuotas[0, dgv_Cuotas.CurrentRow.Index].Value);
                Cuotas_seleccionada.Monto = Convert.ToDecimal(dgv_Cuotas[1, dgv_Cuotas.CurrentRow.Index].Value);
                Cuotas_seleccionada.Total = Convert.ToDecimal(dgv_Cuotas[2, dgv_Cuotas.CurrentRow.Index].Value);
                Cuotas_seleccionada.Importe = Convert.ToInt32(tbx_Importe.Text);
                Cuotas_seleccionada.Instituto_informe = Convert.ToInt32(tbx_Instituto_informe.Text);
                Cuotas_seleccionada.Sellado = Convert.ToDecimal(mtbx_Sellado.Text);
                Cuotas_seleccionada.Tem = Convert.ToDecimal(mtbx_TEM.Text);
                Aceptar = true;
                this.Close();
            }
        }
    }
}
